﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SMA.GENTEv1;
using Telerik.Web.UI;

public partial class Protegidos_Empresas_Documentos_edLegalDeficientes : System.Web.UI.Page
{
    private bool _ordenacao = false;
    private int _contrato = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        StatusPessoa pessoastatus = new StatusPessoa();

        if (!IsPostBack)
        {
            cboStatusPessoa.DataSource = pessoastatus.SelectAll(true);
            cboStatusPessoa.DataBind();
            cboStatusPessoa.SelectedIndex = 0;

            rgvDeficientes.Visible = false;

            // verifica se foi enviado algum argumento pela url. Em caso positivo, significa que a página foi acessada
            // por meio de um workflow
            if (Request.QueryString.Count != 0)
            {
                _contrato = int.Parse(Request.QueryString["Codigo"].ToString());
                CarregarDadosDeficientes();
            }
        }
    }

    private void CarregarDadosDeficientes()
    {
        List<StatusPessoa> listPessoaStatus = new List<StatusPessoa>();
        Pessoa pessoa = new Pessoa();
        
        foreach (RadComboBoxItem item in cboStatusPessoa.Items)
        {
            CheckBox chk = (CheckBox)item.FindControl("chk1");
            if (chk.Checked)
            {
                listPessoaStatus.Add(new StatusPessoa() { IdStatusPessoa = int.Parse(item.Value), Descricao = item.Text });
            }
        }

        // essa condição é apenas para efeito de teste, porque ainda não se sabe como vai obter essa informação de
        // contrato
        if (_contrato == 0) _contrato = 4;

        rgvDeficientes.Visible = true;
        rgvDeficientes.DataSource = pessoa.SelecionarDeficienteFisico(_contrato, listPessoaStatus);
        if (!_ordenacao)
        {
            rgvDeficientes.DataBind();
            _ordenacao = false;
        }
    }

    protected void btnPesquisar_Click(object sender, EventArgs e)
    {

        if (VerificaSelecaoStatus())
        {
            lblResultado.Text = "";
            CarregarDadosDeficientes();
        }
        else
        {
            rgvDeficientes.Visible = false;
            lblResultado.Text = "É necessário selecionar ao menos uma situação para buscar os dados!";
        }
    }

    private bool VerificaSelecaoStatus()
    {
        try
        {
            bool _selecao = false;

            foreach (RadComboBoxItem item in cboStatusPessoa.Items)
            {
                CheckBox chk = (CheckBox)item.FindControl("chk1");
                if (chk.Checked)
                {
                    _selecao = true;
                    break;
                }
            }

            return _selecao;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void rgvDeficientes_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        if (!e.IsFromDetailTable)
        {
            if (VerificaSelecaoStatus())
            {
                _ordenacao = true;
                CarregarDadosDeficientes();
            }
        }
    }

    private void LimparCampos()
    {
        foreach (RadComboBoxItem item in cboStatusPessoa.Items)
        {
            CheckBox chk = (CheckBox)item.FindControl("chk1");
            chk.Checked = true;
        }
        cboStatusPessoa.SelectedIndex = 0;
        rgvDeficientes.Visible = false;
        lblResultado.Text = "";
    }

    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        LimparCampos();
    }

}
